-
Notifications
You must be signed in to change notification settings - Fork 73
[E2E][QIT] Migrate to Test Packages infrastructure #11175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
The dev-trunk version of qit-cli requires PHP 7.4+, which conflicts with the config.platform.php setting of 7.3. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates the QIT E2E tests infrastructure from a custom Docker-based setup to the recommended Test Packages approach. The migration modernizes the test infrastructure with better isolation, simpler configuration, and alignment with QIT best practices.
Key changes:
- Adopts Test Packages structure with dedicated test package directory (
tests/qit/test-package/) - Removes legacy custom E2E infrastructure (Docker volumes, custom runner scripts,
qit.yml) - Implements QIT-native configuration with
qit.jsonandqit-test.jsonmanifests - Updates test utilities to use the new
@qit/helpersmodule - Fixes race condition in WC Blocks checkout save payment checkbox
Reviewed changes
Copilot reviewed 31 out of 42 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
tests/qit/test-package/** |
New test package infrastructure with Playwright tests, utilities, fixtures, and configuration |
tests/qit/test-package/bootstrap/*.sh |
Bootstrap scripts for WordPress/WooCommerce setup and Jetpack connection |
tests/qit/test-package/qit-helpers/** |
QIT helper module for WP-CLI operations and test utilities |
tests/qit/qit.json |
Main QIT configuration defining SUT, environments, and test packages |
tests/qit/qit.yml |
Removed legacy QIT configuration for custom tests |
tests/qit/e2e-runner.sh |
Removed legacy custom test runner script |
tests/qit/e2e/utils/helpers.ts |
Removed legacy helper functions replaced by test package utilities |
tests/qit/e2e/.eslintrc.js |
Removed legacy ESLint configuration |
package.json |
Updated npm scripts to use QIT CLI directly with new configuration |
composer.json |
Updated QIT CLI to dev-trunk for test packages support |
.eslintignore, .prettierignore |
Added test-package directory to ignore lists |
tests/qit/README.md |
Updated documentation with test packages approach |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Test the buildOption 1. Jetpack Beta
Option 2. Jurassic Ninja - available for logged-in A12s🚀 Launch a JN site with this branch 🚀 ℹ️ Install this Tampermonkey script to get more options. Build info:
Note: the build is updated when a new commit is pushed to this PR. |
|
Size Change: 0 B Total Size: 877 kB ℹ️ View Unchanged
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 30 out of 41 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
tests/qit/test-package/bootstrap/setup.sh:109
- The user creation commands reference emails that don't match those in the configuration file. For example, line 95 creates a user with email
[email protected], but the config file (tests/qit/test-package/config/users.json) specifies[email protected]. This inconsistency could lead to issues if the tests expect specific email addresses. The same issue exists for subscriptions-customer (line 102) and editor (line 109).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const response = await axios.post(url, data, { | ||
| headers: { 'Content-Type': 'application/json' }, | ||
| maxRedirects: 5, | ||
| timeout: 600000, // 10 min |
Copilot
AI
Dec 3, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The timeout value of 600000 milliseconds (10 minutes) is extremely long for a single HTTP POST request. This could cause tests to hang for extended periods if there's a network or server issue. Consider reducing this to a more reasonable value (e.g., 30-60 seconds) or making it configurable. If long timeouts are genuinely needed for specific operations, add a comment explaining why.
Summary
This PR migrates the QIT E2E tests infrastructure to use Test Packages, the recommended approach for QIT. This replaces the previous custom E2E setup.
Key changes:
tests/qit/e2e/,qit.yml,e2e-runner.sh)qit.json,qit-test.json)Test Coverage
Testing
Refer to tests/qit/README.md for setup instructions.
All tests should pass ✅
Context
This is part of the ongoing effort to migrate E2E tests from a custom Docker-based environment to QIT. Previous work established the QIT foundation (#11133, #11146). After QIT released the Test Packages feature, we paused migration to adopt this new approach which offers better isolation and simpler configuration.
Next Steps
Subsequent PRs will migrate remaining test specs:
🤖 Generated with Claude Code